gusucode.com > LTE基带收发仿真系统matlab源码程序 > LTE baseband simulation/find_pilot.m

    function pilotLocation = find_pilot(cellID,nTx,scPerRB,nOfdmSymb,nRB,ns)
% 功能:根据天线端口数,确定导频占用的位置
% 参考标准 TS 36.211 V8.6.0 section 6.10
% 输入:
%        cellID:小区ID
%           nTx:发送天线
%       scPerRB:每个PRB上的子载波数
%     nOfdmSymb:ofdm符号数
%           nRB:物理资源数
%            ns:时隙
% 输出:
%      pilotLocation:导频占位标记

%  Author:		程式小组(徐萌 张妙 张晓庆)
%  Date:		2010-07-11
%  ==========================================================
N_symb_DL = nOfdmSymb/2;
pilotLocation = zeros(scPerRB*nRB,nOfdmSymb);
for m = 0:2*nRB-1
    for p = 0:nTx-1
        if p == 0
            v = [0 3];
            vShift = mod(cellID,6);
            k =6*m+mod(v+vShift,6)+1;
            l = [0 N_symb_DL-3]+1;
        elseif p == 1
            v = [3 0];
            vShift = mod(cellID,6);
            k =6*m+mod(v+vShift,6)+1;
            l = [0 N_symb_DL-3]+1;
            
        elseif p == 2
            v = 3*mod(ns,2);
            vShift = mod(cellID,6);
            k =6*m+mod(v+vShift,6)+1;
            l = 1+1;
        elseif p == 3
            v = 3+3*mod(ns,2);
            vShift = mod(cellID,6);
            k =6*m+mod(v+vShift,6)+1;
            l = 1+1;
        end
        len = length(k);
        for kk = 1:len
            pilotLocation(k(kk),l(kk)) = 1; % 一个子帧内第一个时隙导频占用位置
        end
        pilotLocation(k,l+N_symb_DL) = pilotLocation(k,l); % 一个子帧内第二个时隙导频占用位置
    end
end